package com.dd.cloud.user.entity.product;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 收费服务产品赠送规则表
 *
 * @author Lx
 * @version 1.0
 * @date 2024/1/19
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Table(comment = "收费服务产品赠送规则表")
public class ProductGiveRule implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 收费服务产品赠送规则表id
     */
    @TableId(value = "id", type = IdType.AUTO)
    @Column(isKey = true, isAutoIncrement = true)
    private Integer id;

    /**
     * 账号类型 1社会 2慈善
     */
    @Column(comment = "账号类型 1社会 2慈善")
    private Integer accountType;

    /**
     * 商品名称
     */
    @Column(length = 50, comment = "商品名称")
    private String title;

    /**
     * 医生认证状态 1未认证 2已认证
     */
    @Column(comment = "医生认证状态 1未认证 2已认证")
    private Integer accountAuth;

    /**
     * 是否累加 1是 0否
     */
    @Column(comment = "是否累加 1是 0否")
    private Integer accrual;

    /**
     * 是否可生成订单 1是 0否
     */
    @Column(comment = "是否可生成订单 1是 0否")
    private Integer genOrder;

    /**
     * 数量
     */
    @Column(comment = "数量")
    private Integer num;

    /**
     * 数量类型 1次数 2天数
     */
    @Column(comment = "数量类型 1次数 2天数")
    private Integer numType;

    /**
     * 订单数量达标赠送
     */
    @Column(comment = "订单数量达标赠送")
    private Integer orderNum;

    /**
     * 备注
     */
    @Column(comment = "备注")
    private String remark;

    /**
     * 状态 1正常使用 -1删除, 2下架
     */
    @Column(comment = "状态 1正常使用 -1删除, 2下架")
    private Integer status;

    /**
     * 修改人id
     */
    @Column(comment = "修改人id")
    private Integer updateId;

    /**
     * 修改人类型(同登录类型)
     */
    @Column(comment = "修改人类型(同登录类型)")
    private Integer updateType;

    /**
     * 修改时间
     */
    @Column(comment = "修改时间")
    private LocalDateTime updateDate;

    /**
     * 创建时间
     */
    @Column(comment = "创建时间")
    private LocalDateTime createDate;

    /**
     * 类型
     */
    @Column(comment = "标识:1.首次登录 2.订单累计",defaultValue = "0")
    private Integer type;
}
